home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / xalan.jar / org / apache / xalan / xpath / FuncSystemProperty.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-12  |  2.9 KB  |  78 lines

  1. package org.apache.xalan.xpath;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.FilterInputStream;
  5. import java.io.InputStream;
  6. import java.util.Properties;
  7. import java.util.Vector;
  8. import org.w3c.dom.Node;
  9. import org.xml.sax.SAXException;
  10.  
  11. public class FuncSystemProperty extends Function {
  12.    Properties xsltInfo = new Properties();
  13.    static String XSLT_PROPERTIES = "/org/apache/xalan/xpath/xml/XSLTInfo.properties";
  14.  
  15.    public XObject execute(XPath var1, XPathSupport var2, Node var3, int var4, Vector var5) throws SAXException {
  16.       String var6 = ((XObject)var5.elementAt(0)).str();
  17.       int var7 = var6.indexOf(58);
  18.       String var9 = "";
  19.       this.loadPropertyFile(XSLT_PROPERTIES, this.xsltInfo);
  20.       String var8;
  21.       if (var7 > 0) {
  22.          String var10 = var7 >= 0 ? var6.substring(0, var7) : "";
  23.          String var11 = var2.getNamespaceContext().getNamespaceForPrefix(var10);
  24.          var9 = var7 < 0 ? var6 : var6.substring(var7 + 1);
  25.          if (!var11.startsWith("http://www.w3.org/XSL/Transform") && !var11.equals("http://www.w3.org/1999/XSL/Transform")) {
  26.             var1.warn(3, new Object[]{var11, var6});
  27.  
  28.             try {
  29.                var8 = System.getProperty(var9);
  30.                if (var8 == null) {
  31.                   var8 = "";
  32.                }
  33.             } catch (SecurityException var14) {
  34.                var1.warn(4, new Object[]{var6});
  35.                var8 = "";
  36.             }
  37.          } else {
  38.             var8 = this.xsltInfo.getProperty(var9);
  39.             if (var8 == null) {
  40.                var1.warn(2, new Object[]{var6});
  41.                var8 = "";
  42.             }
  43.          }
  44.       } else {
  45.          try {
  46.             var8 = System.getProperty(var6);
  47.             if (var8 == null) {
  48.                var8 = "";
  49.             }
  50.          } catch (SecurityException var13) {
  51.             var1.warn(4, new Object[]{var6});
  52.             var8 = "";
  53.          }
  54.       }
  55.  
  56.       if (var9.equals("version") && var8.length() > 0) {
  57.          try {
  58.             return new XNumber(new Double(var8));
  59.          } catch (Exception var12) {
  60.             return new XString(var8);
  61.          }
  62.       } else {
  63.          return new XString(var8);
  64.       }
  65.    }
  66.  
  67.    public void loadPropertyFile(String var1, Properties var2) {
  68.       try {
  69.          InputStream var3 = this.getClass().getResourceAsStream(var1);
  70.          BufferedInputStream var4 = new BufferedInputStream(var3);
  71.          var2.load(var4);
  72.          ((FilterInputStream)var4).close();
  73.       } catch (Exception var5) {
  74.          ((Throwable)var5).printStackTrace();
  75.       }
  76.    }
  77. }
  78.